Modern applications have a broad variety of characteristics that can affect application performance. Software developers can distribute these applications to remote users and install the applications on remote computer systems. Many developers maintain a network connection within their remotely installed applications, collecting information and remotely modifying application characteristics. Even if applications are not remotely modified based on the collected data, later versions of a software application can be designed based on the information.
Different approaches are taken by conventional applications to collecting operational information from a computer application and sending the information to a server computer. Users of computer applications are often concerned about different aspects of the data sending process. One aspect of concern for users involves the bandwidth consumption and performance degradation that can result from sending collected data from their computers. Another aspect that concerns users is the collecting and sending of information that affects their privacy.
Software developers seek to collect as much useful information as possible about application operation, without impacting the user experience or raising user concerns.